home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / MacOS / QuickDraw™ 3D 1.0.6F4 SDK / Development / Interfaces / QD3DTransform.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-14  |  9.4 KB  |  323 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DTransform.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Transform routines                                          **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **     Copyright (C) 1991-1995 Apple Computer, Inc. All rights reserved.     **    
  10.  **                                                                          **
  11.  **                                                                          **
  12.  *****************************************************************************/
  13. #ifndef QD3DTransform_h
  14. #define QD3DTransform_h
  15.  
  16. #ifndef QD3D_h
  17. #include <QD3D.h>
  18. #endif  /*  QD3D_h  */
  19.  
  20. #if PRAGMA_ONCE
  21.     #pragma once
  22. #endif
  23.  
  24. #if defined(__MWERKS__)
  25.     #pragma enumsalwaysint on
  26.     #pragma align_array_members off
  27.     #pragma options align=native
  28. #endif
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif    /* __cplusplus */
  33.  
  34. /******************************************************************************
  35.  **                                                                             **
  36.  **                            Transform Routines                                 **
  37.  **                                                                             **
  38.  *****************************************************************************/
  39.  
  40. QD3D_EXPORT TQ3ObjectType Q3Transform_GetType(
  41.     TQ3TransformObject    transform);
  42.  
  43. QD3D_EXPORT TQ3Matrix4x4 *Q3Transform_GetMatrix(
  44.     TQ3TransformObject    trasform,
  45.     TQ3Matrix4x4        *matrix);
  46.  
  47. QD3D_EXPORT TQ3Status Q3Transform_Submit(
  48.     TQ3TransformObject    transform, 
  49.     TQ3ViewObject        view);
  50.  
  51.  
  52. /******************************************************************************
  53.  **                                                                             **
  54.  **                            MatrixTransform Routines                         **
  55.  **                                                                             **
  56.  *****************************************************************************/
  57.  
  58. QD3D_EXPORT TQ3TransformObject Q3MatrixTransform_New(
  59.     const TQ3Matrix4x4     *matrix);
  60.  
  61. QD3D_EXPORT TQ3Status Q3MatrixTransform_Submit(
  62.     const TQ3Matrix4x4     *matrix,
  63.     TQ3ViewObject        view);
  64.  
  65. QD3D_EXPORT TQ3Status Q3MatrixTransform_Set(
  66.     TQ3TransformObject    transform, 
  67.     const TQ3Matrix4x4      *matrix);
  68.  
  69. QD3D_EXPORT TQ3Status Q3MatrixTransform_Get(
  70.     TQ3TransformObject    transform,
  71.     TQ3Matrix4x4        *matrix);
  72.  
  73.  
  74. /******************************************************************************
  75.  **                                                                             **
  76.  **                            RotateTransform Data                             **
  77.  **                                                                             **
  78.  *****************************************************************************/
  79.  
  80. typedef struct TQ3RotateTransformData {
  81.     TQ3Axis        axis;
  82.     float        radians;
  83. } TQ3RotateTransformData;
  84.  
  85.  
  86. /******************************************************************************
  87.  **                                                                             **
  88.  **                            RotateTransform Routines                         **
  89.  **                                                                             **
  90.  *****************************************************************************/
  91.  
  92. QD3D_EXPORT TQ3TransformObject Q3RotateTransform_New(
  93.     const TQ3RotateTransformData    *data);
  94.  
  95.  
  96. QD3D_EXPORT TQ3Status Q3RotateTransform_Submit(
  97.     const TQ3RotateTransformData    *data,
  98.     TQ3ViewObject                    view);
  99.  
  100. QD3D_EXPORT TQ3Status Q3RotateTransform_SetData(
  101.     TQ3TransformObject                transform,
  102.     const TQ3RotateTransformData    *data);
  103.  
  104. QD3D_EXPORT TQ3Status Q3RotateTransform_GetData(
  105.     TQ3TransformObject                transform,
  106.     TQ3RotateTransformData            *data);
  107.     
  108. QD3D_EXPORT TQ3Status Q3RotateTransform_SetAxis(
  109.     TQ3TransformObject                transform,
  110.     TQ3Axis                            axis);
  111.  
  112. QD3D_EXPORT TQ3Status Q3RotateTransform_SetAngle(
  113.     TQ3TransformObject                transform,
  114.     float                            radians);
  115.  
  116. QD3D_EXPORT TQ3Status Q3RotateTransform_GetAxis(
  117.     TQ3TransformObject                 renderable, 
  118.     TQ3Axis                         *axis);
  119.  
  120. QD3D_EXPORT TQ3Status Q3RotateTransform_GetAngle(
  121.     TQ3TransformObject                 transform, 
  122.     float                             *radians);
  123.  
  124.  
  125. /******************************************************************************
  126.  **                                                                             **
  127.  **                    RotateAboutPointTransform Data                             **
  128.  **                                                                             **
  129.  *****************************************************************************/
  130.  
  131. typedef struct TQ3RotateAboutPointTransformData {
  132.     TQ3Axis            axis;
  133.     float            radians;
  134.     TQ3Point3D        about;
  135. } TQ3RotateAboutPointTransformData;
  136.  
  137.  
  138. /******************************************************************************
  139.  **                                                                             **
  140.  **                    RotateAboutPointTransform Routines                         **
  141.  **                                                                             **
  142.  *****************************************************************************/
  143.  
  144. QD3D_EXPORT TQ3TransformObject Q3RotateAboutPointTransform_New(
  145.     const TQ3RotateAboutPointTransformData    *data);
  146.  
  147. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_Submit(
  148.     const TQ3RotateAboutPointTransformData    *data,
  149.     TQ3ViewObject                            view);
  150.  
  151. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetData(
  152.     TQ3TransformObject                        transform,
  153.     const TQ3RotateAboutPointTransformData    *data);
  154.  
  155. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetData(
  156.     TQ3TransformObject                        transform,
  157.     TQ3RotateAboutPointTransformData        *data);
  158.  
  159. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAxis(
  160.     TQ3TransformObject                        transform,
  161.     TQ3Axis                                    axis);
  162.  
  163. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAxis(
  164.     TQ3TransformObject                        transform,
  165.     TQ3Axis                                    *axis);
  166.  
  167.  
  168. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAngle(
  169.     TQ3TransformObject                        transform,
  170.     float                                    radians);
  171.  
  172. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAngle(
  173.     TQ3TransformObject                        transform,
  174.     float                                    *radians);
  175.  
  176.  
  177. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAboutPoint(
  178.     TQ3TransformObject                        transform,
  179.     const TQ3Point3D                        *about);
  180.  
  181. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAboutPoint(
  182.     TQ3TransformObject                        transform,
  183.     TQ3Point3D                                *about);
  184.  
  185.  
  186. /******************************************************************************
  187.  **                                                                             **
  188.  **                    RotateAboutAxisTransform Data                             **
  189.  **                                                                             **
  190.  *****************************************************************************/
  191.  
  192. typedef struct TQ3RotateAboutAxisTransformData {
  193.     TQ3Point3D            origin;
  194.     TQ3Vector3D            orientation;
  195.     float                radians;
  196. } TQ3RotateAboutAxisTransformData;
  197.  
  198.  
  199. /******************************************************************************
  200.  **                                                                             **
  201.  **                    RotateAboutAxisTransform Routines                         **
  202.  **                                                                             **
  203.  *****************************************************************************/
  204.  
  205. QD3D_EXPORT TQ3TransformObject Q3RotateAboutAxisTransform_New(
  206.     const TQ3RotateAboutAxisTransformData    *data);
  207.  
  208. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_Submit(
  209.     const TQ3RotateAboutAxisTransformData    *data,
  210.     TQ3ViewObject                            view);
  211.  
  212. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetData(
  213.     TQ3TransformObject                        transform,
  214.     const TQ3RotateAboutAxisTransformData    *data);
  215.  
  216. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetData(
  217.     TQ3TransformObject                        transform,
  218.     TQ3RotateAboutAxisTransformData            *data);
  219.  
  220.  
  221. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrientation(
  222.     TQ3TransformObject                        transform,
  223.     const TQ3Vector3D                        *axis);
  224.  
  225. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrientation(
  226.     TQ3TransformObject                        transform,
  227.     TQ3Vector3D                                *axis);
  228.  
  229.  
  230. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetAngle(
  231.     TQ3TransformObject                        transform,
  232.     float                                    radians);
  233.  
  234. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetAngle(
  235.     TQ3TransformObject                        transform,
  236.     float                                    *radians);
  237.  
  238.  
  239. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrigin(
  240.     TQ3TransformObject                        transform,
  241.     const TQ3Point3D                            *origin);
  242.  
  243. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrigin(
  244.     TQ3TransformObject                        transform,
  245.     TQ3Point3D                                *origin);
  246.  
  247.  
  248. /******************************************************************************
  249.  **                                                                             **
  250.  **                            ScaleTransform Routines                             **
  251.  **                                                                             **
  252.  *****************************************************************************/
  253.  
  254. QD3D_EXPORT TQ3TransformObject Q3ScaleTransform_New(
  255.     const TQ3Vector3D        *scale);
  256.  
  257. QD3D_EXPORT TQ3Status Q3ScaleTransform_Submit(
  258.     const TQ3Vector3D        *scale,
  259.     TQ3ViewObject            view);
  260.         
  261. QD3D_EXPORT TQ3Status Q3ScaleTransform_Set(
  262.     TQ3TransformObject        transform,
  263.     const TQ3Vector3D        *scale);
  264.  
  265. QD3D_EXPORT TQ3Status Q3ScaleTransform_Get(
  266.     TQ3TransformObject        transform,
  267.     TQ3Vector3D                *scale);
  268.  
  269.  
  270. /******************************************************************************
  271.  **                                                                             **
  272.  **                            TranslateTransform Routines                         **
  273.  **                                                                             **
  274.  *****************************************************************************/
  275.  
  276. QD3D_EXPORT TQ3TransformObject Q3TranslateTransform_New(
  277.     const TQ3Vector3D        *translate);
  278.  
  279. QD3D_EXPORT TQ3Status Q3TranslateTransform_Submit(
  280.     const TQ3Vector3D        *translate,
  281.     TQ3ViewObject            view);
  282.  
  283. QD3D_EXPORT TQ3Status Q3TranslateTransform_Set(
  284.     TQ3TransformObject        transform,
  285.     const TQ3Vector3D        *translate);
  286.  
  287. QD3D_EXPORT TQ3Status Q3TranslateTransform_Get(
  288.     TQ3TransformObject        transform,
  289.     TQ3Vector3D                *translate);
  290.  
  291. /******************************************************************************
  292.  **                                                                             **
  293.  **                            QuaternionTransform Routines                     **
  294.  **                                                                             **
  295.  *****************************************************************************/
  296.  
  297. QD3D_EXPORT TQ3TransformObject Q3QuaternionTransform_New(
  298.     const TQ3Quaternion        *quaternion);
  299.  
  300. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Submit(
  301.     const TQ3Quaternion        *quaternion,
  302.     TQ3ViewObject            view);
  303.  
  304. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Set(
  305.     TQ3TransformObject        transform, 
  306.     const TQ3Quaternion     *quaternion);
  307.  
  308. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Get(
  309.     TQ3TransformObject        transform,
  310.     TQ3Quaternion            *quaternion);
  311.  
  312.  
  313. #ifdef __cplusplus
  314. }
  315. #endif    /* __cplusplus */
  316.  
  317. #if defined(__MWERKS__)
  318. #pragma options align=reset
  319. #pragma enumsalwaysint reset
  320. #endif
  321.  
  322. #endif  /*  QD3DTransform_h  */
  323.